package com.gali.mall.config;

import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.cache.RedisCacheConfiguration;
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.cache.RedisCacheWriter;
import org.springframework.data.redis.connection.RedisConnectionFactory;

import java.time.Duration;

@Configuration
@EnableCaching
public class CachingConfig {
    @Bean
    public RedisCacheManager redisCacheManager(RedisConnectionFactory redisConnectionFactory){
                RedisCacheWriter redisCachewriter = RedisCacheWriter.lockingRedisCacheWriter(redisConnectionFactory);
                RedisCacheConfiguration redisCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
                redisCacheConfiguration=redisCacheConfiguration.entryTtl(Duration.ofSeconds(30));
                RedisCacheManager redisCacheManager = new RedisCacheManager(redisCachewriter, redisCacheConfiguration);
                return redisCacheManager;
            }
        }
